home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / util / libs / MailPro.lha / MailProLibrary / ShowPKT / MainWin.h < prev    next >
Encoding:
Text File  |  1999-03-06  |  36.0 KB  |  734 lines

  1.  
  2. ///­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯ <
  3. ///
  4. ///ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Íàÿäéñ: MainWin ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ <
  5. ///
  6. ///¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´ <
  7. ///
  8. void __saveds __asm ELDisplay (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_DisplayMessage *nldm)
  9. {
  10.   nldm->preparses[0] = MUIX_C;
  11.   nldm->preparses[1] = MUIX_C;
  12.   if (nldm->entry)
  13.     {
  14.       nldm->strings[0] = (STRPTR)(((struct ELNode *)nldm->entry)->idstr);
  15.       nldm->strings[1] = ((struct ELNode *)nldm->entry)->sizestr;
  16.     }
  17.   else
  18.     {
  19.       nldm->strings[0] = MW_ENTRY_LIST_TITLE1;
  20.       nldm->strings[1] = MW_ENTRY_LIST_TITLE2;
  21.     }
  22. }
  23. APTR __saveds __asm ELConstruct (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_ConstructMessage *nlcm)
  24. {
  25.   struct ELNode *elnode;
  26.  
  27.   if (elnode = AllocPooled (nlcm->pool, sizeof(struct ELNode)))
  28.     {
  29.       elnode->me = (struct MessageEntry *)(nlcm->entry);
  30.       elnode->idstr[0] = elnode->me->me_ID;
  31.       elnode->idstr[1] = 0L;
  32.       stcl_d (elnode->sizestr, elnode->me->me_Size);
  33.       return (elnode);
  34.     }
  35.   return (NULL);
  36. }
  37. void __saveds __asm ELDestruct (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_DestructMessage *nldm)
  38. {
  39.   FreePooled (nldm->pool, nldm->entry, sizeof(struct ELNode));
  40. }
  41. void __saveds __asm SELDisplay (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_DisplayMessage *nldm)
  42. {
  43.   if (nldm->entry)
  44.     nldm->strings[0] = nldm->entry;
  45.   else
  46.     {
  47.       nldm->preparses[0] = MUIX_C;
  48.       nldm->strings[0] = MW_SENTRY_MTEXT_TITLE;
  49.     }
  50. }
  51. void __saveds __asm HDisplay (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_DisplayMessage *nldm)
  52. {
  53.   nldm->preparses[0] = MUIX_R;
  54.   nldm->preparses[1] = MUIX_L;
  55.   if (nldm->entry)
  56.     {
  57.       nldm->strings[0] = ((struct HLNode *)nldm->entry)->name;
  58.       nldm->strings[1] = ((struct HLNode *)nldm->entry)->val;
  59.     }
  60. }
  61. APTR __saveds __asm HConstruct (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_ConstructMessage *nlcm)
  62. {
  63.   struct HLNode *hlnode;
  64.  
  65.   if (hlnode = AllocPooled (nlcm->pool, sizeof(struct HLNode)))
  66.     {
  67.       strcpy (hlnode->name, ((struct HINode *)nlcm->entry)->name);
  68.       strcpy (hlnode->val,  ((struct HINode *)nlcm->entry)->val);
  69.       return (hlnode);
  70.     }
  71.   return (NULL);
  72. }
  73. void __saveds __asm HDestruct (REG(a0) struct Hook *hook, REG(a2) Object *obj, REG(a1) struct NList_DestructMessage *nldm)
  74. {
  75.   FreePooled (nldm->pool, nldm->entry, sizeof(struct HLNode));
  76. }
  77. /*                             ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  78. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥   MainWinOpenPKT()  ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  79. ¢                              ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                      ¢
  80. ¢                          Æaîïíð ç æaâïòæéa ìíáíâí îaéäña.                 ¢
  81. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  82. */
  83. ULONG MainWinOpenPKT (struct IClass *cl, Object *obj, Msg *msg)
  84. {
  85.   struct rtFileRequester *req;
  86.   UBYTE fname[FMSIZE];
  87.   UBYTE fpn[2*FMSIZE];
  88.   struct MWData *data = INST_DATA(cl, obj);
  89.  
  90.   strcpy (fname, data->reqfile);
  91.   if (req = rtAllocRequestA (RT_FILEREQ, NULL))
  92.     {
  93.       rtChangeReqAttr (req, RTFI_Dir, workdir, TAG_DONE);
  94.       if (rtFileRequest (req, fname,
  95.                          REQ_SELECT_PACKET,
  96.                          RT_Underscore, '_',
  97.                          RTFI_OkText, LOAD_BUTTON,
  98.                          TAG_MORE, hooktags))
  99.         {
  100.           strmfp (fpn, req->Dir, fname);
  101.           if (MP_IsFile (fpn, MPISFP_DONT_USE, MPISFT_PKT) == 1L)
  102.             {
  103.               strcpy (workdir, req->Dir);
  104.               strcpy (data->reqfile, fname);
  105.               strcpy (data->workfile, fpn);
  106.               DoMethod (obj, MUIM_MW_NewPacket);
  107.             }
  108.           else
  109.             MakeRequest (REQ_TITLE_ERROR, NOT_PACKET_FILE, CANCEL_BUTTON, fpn);
  110.         }
  111.       rtFreeRequest (req);
  112.     }
  113.   else
  114.     MakeRequest (REQ_TITLE_ERROR, OUT_MEM, CANCEL_BUTTON, NULL);
  115.   return (0L);
  116. }
  117. /*                             ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  118. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥   MainWinNewName()  ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  119. ¢                              ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                      ¢
  120. ¢                    Æaâïòæéa ìíáíâí îaéäña îí ááäã½ììíëò çëäìç.            ¢
  121. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  122. */
  123. ULONG MainWinNewName (struct IClass *cl, Object *obj, Msg *msg)
  124. {
  125.   STRPTR str;
  126.   LONG x;
  127.   struct MWData *data = INST_DATA(cl, obj);
  128.  
  129.   if ((str = getstr (data->PNameStr)) && (*str))
  130.     {
  131.       if (MP_IsFile (str, MPISFP_DONT_USE, MPISFT_PKT) == 1L)
  132.         {
  133.           strcpy (data->workfile, str);
  134.           x = stcgfp (workdir, str);
  135.           strcpy (data->reqfile, &str[x]);
  136.           DoMethod (obj, MUIM_MW_NewPacket);
  137.         }
  138.       else
  139.         MakeRequest (REQ_TITLE_ERROR, NOT_PACKET_FILE, CANCEL_BUTTON, str);
  140.     }
  141.   return (0L);
  142. }
  143. /*                             ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  144. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥  MainWinNewPacket() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  145. ¢                              ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                      ¢
  146. ¢                              Íñïaàíñéa ìíáíâí îaéäña.                     ¢
  147. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  148. */
  149. ULONG MainWinNewPacket (struct IClass *cl, Object *obj, Msg *msg)
  150. {
  151.   LONG error;
  152.   STRPTR type;
  153.   struct MWData *data = INST_DATA(cl, obj);
  154.  
  155.   DoMethod (data->EList, MUIM_NList_Clear);
  156.   DoMethod (data->PHList, MUIM_NList_Clear);
  157.   DoMethod (obj, MUIM_MultiSet, MUIA_Text_Contents, empty, data->PNTText, data->MesText, data->ENumText, data->AreaText, data->DateText, data->FromText, data->ToText, data->SubjText, NULL);
  158.   DoMethod (obj, MUIM_MultiSet, MUIA_Lamp_Color, MUIV_Lamp_Color_Off, data->PStatLamp, data->MStatLamp, data->EStatLamp, NULL);
  159.   set (data->EntryMText, MUIA_Mailtext_Text, empty);
  160.   FreeMemPool (&data->MemPool);
  161.   if (data->MailPkt)
  162.     MP_FreePacket (data->MailPkt);
  163.   set (data->PNameStr, MUIA_String_Contents, data->workfile);
  164.   if (data->MailPkt = MP_AllocPacket (data->workfile, &error))
  165.     {
  166.       if (data->MailPkt->mp_Status != MPS_OK)
  167.         {
  168.           set (data->PStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Error);
  169.           MakeRequest (REQ_TITLE_ERROR, PACKET_ERROR, CANCEL_BUTTON, packet_st[data->MailPkt->mp_Status]);
  170.         }
  171.       else
  172.         {
  173.           set (data->PHList, MUIA_NList_Quiet, MUIV_NList_Quiet_Full);
  174.           switch (data->MailPkt->mp_Type)
  175.             {
  176.               case MPT_3D:
  177.                 type = MW_PT_3D;
  178.                 InsertHNodeW (data->PHList, PH_ORIG_ZONE,    ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_OrigZone);
  179.                 InsertHNodeW (data->PHList, PH_DEST_ZONE,    ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_DestZone);
  180.                 InsertHNodeW (data->PHList, PH_ORIG_NET,     ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_OrigNet);
  181.                 InsertHNodeW (data->PHList, PH_DEST_NET,     ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_DestNet);
  182.                 InsertHNodeW (data->PHList, PH_ORIG_NODE,    ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_OrigNode);
  183.                 InsertHNodeW (data->PHList, PH_DEST_NODE,    ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_DestNode);
  184.                 InsertHNodeW (data->PHList, PH_YEAR,         ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Year);
  185.                 InsertHNodeW (data->PHList, PH_MONTH,        ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Month);
  186.                 InsertHNodeW (data->PHList, PH_DAY,          ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Day);
  187.                 InsertHNodeW (data->PHList, PH_HOUR,         ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Hour);
  188.                 InsertHNodeW (data->PHList, PH_MIN,          ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Minute);
  189.                 InsertHNodeW (data->PHList, PH_SEC,          ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Second);
  190.                 InsertHNodeW (data->PHList, PH_BAUD,         ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Baud);
  191.                 InsertHNodeW (data->PHList, PH_VER,          ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_PktVer);
  192.                 InsertHNodeB (data->PHList, PH_PROD_CODE,    ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_ProdCode);
  193.                 InsertHNodeB (data->PHList, PH_SERIAL_NO,    ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_SerialNo);
  194.                 InsertHNodeS (data->PHList, PH_PASSWORD,     ((struct Packet3DHeader *)(data->MailPkt->mp_Header))->ph_Password);
  195.                 break;
  196.               case MPT_4D:
  197.                 type = MW_PT_4D;
  198.                 InsertHNodeW (data->PHList, PH_ORIG_ZONE,    data->MailPkt->mp_Header->ph_OrigZone);
  199.                 InsertHNodeW (data->PHList, PH_DEST_ZONE,    data->MailPkt->mp_Header->ph_DestZone);
  200.                 InsertHNodeW (data->PHList, PH_S_ZONE,       data->MailPkt->mp_Header->ph_SZone);
  201.                 InsertHNodeW (data->PHList, PH_R_ZONE,       data->MailPkt->mp_Header->ph_RZone);
  202.                 InsertHNodeW (data->PHList, PH_ORIG_NET,     data->MailPkt->mp_Header->ph_OrigNet);
  203.                 InsertHNodeW (data->PHList, PH_DEST_NET,     data->MailPkt->mp_Header->ph_DestNet);
  204.                 InsertHNodeW (data->PHList, PH_ORIG_NODE,    data->MailPkt->mp_Header->ph_OrigNode);
  205.                 InsertHNodeW (data->PHList, PH_DEST_NODE,    data->MailPkt->mp_Header->ph_DestNode);
  206.                 InsertHNodeW (data->PHList, PH_ORIG_POINT,   data->MailPkt->mp_Header->ph_OrigPoint);
  207.                 InsertHNodeW (data->PHList, PH_DEST_POINT,   data->MailPkt->mp_Header->ph_DestPoint);
  208.                 InsertHNodeW (data->PHList, PH_YEAR,         data->MailPkt->mp_Header->ph_Year);
  209.                 InsertHNodeW (data->PHList, PH_MONTH,        data->MailPkt->mp_Header->ph_Month);
  210.                 InsertHNodeW (data->PHList, PH_DAY,          data->MailPkt->mp_Header->ph_Day);
  211.                 InsertHNodeW (data->PHList, PH_HOUR,         data->MailPkt->mp_Header->ph_Hour);
  212.                 InsertHNodeW (data->PHList, PH_MIN,          data->MailPkt->mp_Header->ph_Minute);
  213.                 InsertHNodeW (data->PHList, PH_SEC,          data->MailPkt->mp_Header->ph_Second);
  214.                 InsertHNodeW (data->PHList, PH_BAUD,         data->MailPkt->mp_Header->ph_Baud);
  215.                 InsertHNodeW (data->PHList, PH_VER,          data->MailPkt->mp_Header->ph_PktVer);
  216.                 InsertHNodeW (data->PHList, PH_AUX_NET,      data->MailPkt->mp_Header->ph_AuxNet);
  217.                 InsertHNodeW (data->PHList, PH_CW_VAL_COPY,  data->MailPkt->mp_Header->ph_CWValCopy);
  218.                 InsertHNodeW (data->PHList, PH_CAP_WORD,     data->MailPkt->mp_Header->ph_CapWord);
  219.                 InsertHNodeB (data->PHList, PH_PROD_CODE_LO, data->MailPkt->mp_Header->ph_ProdCodeLo);
  220.                 InsertHNodeB (data->PHList, PH_PROD_CODE_HI, data->MailPkt->mp_Header->ph_ProdCodeHi);
  221.                 InsertHNodeB (data->PHList, PH_SERIAL_NO_LO, data->MailPkt->mp_Header->ph_RevisionLo);
  222.                 InsertHNodeB (data->PHList, PH_SERIAL_NO_HI, data->MailPkt->mp_Header->ph_RevisionHi);
  223.                 InsertHNodeS (data->PHList, PH_PASSWORD,     data->MailPkt->mp_Header->ph_Password);
  224.                 InsertHNodeL (data->PHList, PH_PRODUCT,      data->MailPkt->mp_Header->ph_Product);
  225.                 break;
  226.               case MPT_5D:
  227.                 type = MW_PT_5D;
  228.                 InsertHNodeS (data->PHList, PH_ORIG_DOM,     ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_OrigDom);
  229.                 InsertHNodeS (data->PHList, PH_DEST_DOM,     ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_DestDom);
  230.                 InsertHNodeW (data->PHList, PH_ORIG_ZONE,    ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_OrigZone);
  231.                 InsertHNodeW (data->PHList, PH_DEST_ZONE,    ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_DestZone);
  232.                 InsertHNodeW (data->PHList, PH_ORIG_NET,     ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_OrigNet);
  233.                 InsertHNodeW (data->PHList, PH_DEST_NET,     ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_DestNet);
  234.                 InsertHNodeW (data->PHList, PH_ORIG_NODE,    ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_OrigNode);
  235.                 InsertHNodeW (data->PHList, PH_DEST_NODE,    ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_DestNode);
  236.                 InsertHNodeW (data->PHList, PH_ORIG_POINT,   ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_OrigPoint);
  237.                 InsertHNodeW (data->PHList, PH_DEST_POINT,   ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_DestPoint);
  238.                 InsertHNodeW (data->PHList, PH_VER,          ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_PktVer);
  239.                 InsertHNodeW (data->PHList, PH_SUB_VER,      ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_PktSubVer);
  240.                 InsertHNodeB (data->PHList, PH_PROD_CODE,    ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_ProdCode);
  241.                 InsertHNodeB (data->PHList, PH_SERIAL_NO,    ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_Revision);
  242.                 InsertHNodeS (data->PHList, PH_PASSWORD,     ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_Password);
  243.                 InsertHNodeL (data->PHList, PH_PRODUCT,      ((struct Packet5DHeader *)(data->MailPkt->mp_Header))->ph_Product);
  244.                 break;
  245.               default:
  246.                 type = MW_PT_UNKNOWN;
  247.             }
  248.           set (data->PNTText, MUIA_Text_Contents, type);
  249.           set (data->PHList, MUIA_NList_Quiet, MUIV_NList_Quiet_None);
  250.           set (data->PStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Ok);
  251.           if (data->MailMes = MP_ToMessage (data->MailPkt, data->mesnum = 0L))
  252.             {
  253.               DoMethod (data->NumBut, MUIM_Numeric_SetDefault);
  254.               set (data->NumBut, MUIA_Numeric_Max, data->MailPkt->mp_NumMess);
  255.               DoMethod (obj, MUIM_MW_Message);
  256.             }
  257.         }
  258.     }
  259.   else
  260.     {
  261.       set (data->PStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Error);
  262.       MakeRequest (REQ_TITLE_ERROR, PACKET_ALLOC_ERROR, CANCEL_BUTTON, packet_er[-error]);
  263.     }
  264.   return (0L);
  265. }
  266. /*                             ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  267. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥   MainWinMessage()  ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  268. ¢                              ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                      ¢
  269. ¢                             Íàïaàíñéa ìíáíâí ðííàùäìçþ.                   ¢
  270. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  271. */
  272. ULONG MainWinMessage (struct IClass *cl, Object *obj, Msg *msg)
  273. {
  274.   struct MessageEntry *me;
  275.   ULONG x;
  276.   struct ELNode *eln;
  277.   struct MWData *data = INST_DATA(cl, obj);
  278.  
  279.   DoMethod (data->EList, MUIM_NList_Clear);
  280.   DoMethod (data->MHList, MUIM_NList_Clear);
  281.   DoMethod (obj, MUIM_MultiSet, MUIA_Text_Contents, empty, data->ENumText, data->AreaText, data->DateText, data->FromText, data->ToText, data->SubjText, NULL);
  282.   DoMethod (obj, MUIM_MultiSet, MUIA_Lamp_Color, MUIV_Lamp_Color_Off, data->MStatLamp, data->EStatLamp, NULL);
  283.   set (data->EntryMText, MUIA_Mailtext_Text, empty);
  284.   FreeMemPool (&data->MemPool);
  285.  
  286.   RDF (data->messtr, MW_MESSAGE_FMT, data->mesnum + 1, data->MailPkt->mp_NumMess, data->MailMes->mm_Size);
  287.   set (data->MesText, MUIA_Text_Contents, data->messtr);
  288.   RDF (data->entrystr, MW_ENTRY_FMT, data->MailMes->mm_NumEntries);
  289.   set (data->ENumText, MUIA_Text_Contents, data->entrystr);
  290.   if (data->MailMes->mm_Status != MMS_OK)
  291.     {
  292.       set (data->MStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Error);
  293.       MakeRequest (REQ_TITLE_ERROR, MESSAGE_ERROR, CANCEL_BUTTON, packet_st[data->MailMes->mm_Status]);
  294.     }
  295.   else
  296.     {
  297.       set (data->MHList, MUIA_NList_Quiet, MUIV_NList_Quiet_Full);
  298.       InsertHNodeW (data->MHList, PH_ORIG_NET,  data->MailMes->mm_Header->mh_OrigNet);
  299.       InsertHNodeW (data->MHList, PH_DEST_NET,  data->MailMes->mm_Header->mh_DestNet);
  300.       InsertHNodeW (data->MHList, PH_ORIG_NODE, data->MailMes->mm_Header->mh_OrigNode);
  301.       InsertHNodeW (data->MHList, PH_DEST_NODE, data->MailMes->mm_Header->mh_DestNode);
  302.       InsertHNodeW (data->MHList, PH_VER,       data->MailMes->mm_Header->mh_Version);
  303.       InsertHNodeW (data->MHList, MH_COST,      data->MailMes->mm_Header->mh_Cost);
  304.       InsertHNodeA (data->MHList, MH_ATTR,      data->MailMes->mm_Header->mh_Attr);
  305.       set (data->MHList, MUIA_NList_Quiet, MUIV_NList_Quiet_None);
  306.       set (data->MStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Ok);
  307.       if (me = MP_FindEntry (data->MailMes, NULL, MEID_AREA))
  308.         set (data->AreaText, MUIA_Text_Contents, TransSStr (me, &data->MemPool) + 5);
  309.       if (me = MP_FindEntry (data->MailMes, NULL, MEID_DATE))
  310.         set (data->DateText, MUIA_Text_Contents, TransSStr (me, &data->MemPool));
  311.       if (me = MP_FindEntry (data->MailMes, NULL, MEID_FROM))
  312.         set (data->FromText, MUIA_Text_Contents, TransSStr (me, &data->MemPool));
  313.       if (me = MP_FindEntry (data->MailMes, NULL, MEID_TO))
  314.         set (data->ToText, MUIA_Text_Contents, TransSStr (me, &data->MemPool));
  315.       if (me = MP_FindEntry (data->MailMes, NULL, MEID_SUBJ))
  316.         set (data->SubjText, MUIA_Text_Contents, TransSStr (me, &data->MemPool));
  317.       set (data->EList, MUIA_NList_Quiet, MUIV_NList_Quiet_Full);
  318.       me = MP_ToEntry (data->MailMes, 0L);
  319.       while (me)
  320.         {
  321.           DoMethod (data->EList, MUIM_NList_InsertSingle, me, MUIV_NList_Insert_Bottom);
  322.           me = MP_NextEntry (me);
  323.         }
  324.       set (data->EList, MUIA_NList_Quiet, MUIV_NList_Quiet_None);
  325.       for (x = 0; ; x++)
  326.         {
  327.           DoMethod (data->EList, MUIM_NList_GetEntry, x, &eln);
  328.           if (! eln)
  329.             break;
  330.           if (eln->me->me_ID == MEID_BODY)
  331.             break;
  332.         }
  333.       if (eln)
  334.         set (data->EList, MUIA_NList_Active, x);
  335.       else
  336.         set (data->EList, MUIA_NList_Active, MUIV_NList_Active_Off);
  337.     }
  338.   return (0L);
  339. }
  340. /*                             ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  341. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥  MainWinToMessage() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  342. ¢                              ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                      ¢
  343. ¢                              Îïíãáçåéa îí ðííàùäìçþë.                     ¢
  344. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  345. */
  346. ULONG MainWinToMessage (struct IClass *cl, Object *obj, Tie *tie)
  347. {
  348.   struct MailMessage *newmes;
  349.   struct MWData *data = INST_DATA(cl, obj);
  350.  
  351.   if (data->MailMes)
  352.     {
  353.       if (tie->ID1 > 0)
  354.         newmes = MP_NextMessage (data->MailMes);
  355.       else
  356.         newmes = MP_PrevMessage (data->MailMes);
  357.       if (newmes)
  358.         {
  359.           data->MailMes = newmes;
  360.           data->mesnum += tie->ID1;
  361.           DoMethod (data->NumBut, MUIM_Numeric_Increase, tie->ID1);
  362.           DoMethod (obj, MUIM_MW_Message);
  363.         }
  364.       else
  365.         DisplayBeep (NULL);
  366.     }
  367.   return (0L);
  368. }
  369. /*                             ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  370. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥  MainWinSelectNum() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  371. ¢                              ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                      ¢
  372. ¢                              Áúàíï ìíëäïa ðííàùäìçþ.                      ¢
  373. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  374. */
  375. ULONG MainWinSelectNum (struct IClass *cl, Object *obj, Tie *tie)
  376. {
  377.   struct MailMessage *newmes;
  378.   struct MWData *data = INST_DATA(cl, obj);
  379.  
  380.   if (data->MailMes)
  381.     {
  382.       if (tie->ID1 != (data->mesnum + 1))
  383.         {
  384.           if (newmes = MP_ToMessage (data->MailPkt, tie->ID1 - 1))
  385.             {
  386.               data->MailMes = newmes;
  387.               data->mesnum = tie->ID1 - 1;
  388.               DoMethod (obj, MUIM_MW_Message);
  389.             }
  390.           else
  391.             DisplayBeep (NULL);
  392.         }
  393.     }
  394.   return (0L);
  395. }
  396. /*                             ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  397. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥  MainWinNewEntry()  ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  398. ¢                              ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                      ¢
  399. ¢                           Áúàíï ìíáíâí üêäëäìña á ðîçðéä.                 ¢
  400. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  401. */
  402. ULONG MainWinNewEntry (struct IClass *cl, Object *obj, Msg *msg)
  403. {
  404.   struct ELNode *eln;
  405.   struct MessageEntry *me;
  406.   struct MWData *data = INST_DATA(cl, obj);
  407.  
  408.   DoMethod (data->EList, MUIM_NList_GetEntry, MUIV_NList_GetEntry_Active, &eln);
  409.   if (eln && (me = eln->me))
  410.     {
  411.       if (me->me_ID == MEID_ENTRY_CORRUPTED)
  412.         {
  413.           set (data->EStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Error);
  414.           DisplayBeep (NULL);
  415.         }
  416.       else
  417.         {
  418.           set (data->EntryMText, MUIA_Mailtext_Text, TransMStr (me, &data->EMTMem));
  419.           set (data->EStatLamp, MUIA_Lamp_Color, MUIV_Lamp_Color_Ok);
  420.         }
  421.     }
  422.   return (0L);
  423. }
  424. /*                             ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  425. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥   MainWinToEntry()  ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  426. ¢                              ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                      ¢
  427. ¢                              Îïíãáçåéa îí üêäëäìñaë.                      ¢
  428. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  429. */
  430. ULONG MainWinToEntry (struct IClass *cl, Object *obj, Tie *tie)
  431. {
  432.   struct MWData *data = INST_DATA(cl, obj);
  433.  
  434.   if (xget (data->EList, MUIA_NList_Active) != MUIV_NList_Active_Off)
  435.     {
  436.       if (tie->ID1 > 0)
  437.         set (data->EList, MUIA_NList_Active, MUIV_NList_Active_Down);
  438.       else
  439.         set (data->EList, MUIA_NList_Active, MUIV_NList_Active_Up);
  440.     }
  441.   return (0L);
  442. }
  443. /*                             ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  444. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥    MainWinOpen()    ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  445. ¢                              ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                      ¢
  446. ¢                              Íñéïúñçä íðìíáìíâí íéìa.                     ¢
  447. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  448. */
  449.  
  450. ULONG MainWinOpen (struct IClass *cl, Object *obj, Tie *tie)
  451. {
  452.   set (obj, MUIA_Window_Open, TRUE);
  453.   hooktags[0].ti_Data = xget (obj, MUIA_Window_Window);
  454.   ReqHook.h_Entry = (HOOKFUNC)IntuiRefresh;
  455.   hooktags[2].ti_Data = (ULONG)(&ReqHook);
  456.   return (0L);
  457. }
  458.  
  459. /*                             ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  460. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥    MainWinClose()   ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  461. ¢                              ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                      ¢
  462. ¢                              Æaéïúñçä íðìíáìíâí íéìa.                     ¢
  463. ¢   Ðííàùaäë îïíâïaëëä, öñí ëú ìaãíäêç îíêûæíáañäêý ç îíïa éíìöañû ïaàíñò.  ¢
  464. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  465. */
  466.  
  467. ULONG MainWinClose (struct IClass *cl, Object *obj, Msg *msg)
  468. {
  469.   struct MWData *data = INST_DATA(cl, obj);
  470.  
  471.   FreeMemPool (&data->MemPool);
  472.   if (data->EMTMem)
  473.     FreeVec (data->EMTMem);
  474.   if (data->MailPkt)
  475.     MP_FreePacket (data->MailPkt);
  476.   DoMethod (ShowPKT, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
  477.   return (0L);
  478. }
  479.  
  480. /*                           ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  481. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥     MainWinNew()    ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  482. ¢                            ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                        ¢
  483. ¢                     Çìçõçaêçæaõçþ íàÿäéña îí ëäñíãò OM_NEW.               ¢
  484. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  485. */
  486. ULONG MainWinNew (struct IClass *cl, Object *obj, struct opSet *msg)
  487. {
  488.   struct MWData *data;
  489.   Object *PNTText, *PNameStr, *PLoadBut, *MesText;
  490.   Object *LeftBut, *RightBut, *NumBut, *UpBut, *DownBut;
  491.   Object *PStatLamp, *MStatLamp, *EStatLamp;
  492.   Object *ENumText, *ELView, *EList;
  493.   Object *AreaText, *DateText, *FromText, *ToText, *SubjText;
  494.   Object *EntryLView, *EntryMText;
  495.   Object *PHLView, *PHList, *MHLView, *MHList;
  496.  
  497.   ELDiHook.h_Entry = (HOOKFUNC)ELDisplay;
  498.   ELCsHook.h_Entry = (HOOKFUNC)ELConstruct;
  499.   ELDsHook.h_Entry = (HOOKFUNC)ELDestruct;
  500.   SELDHook.h_Entry = (HOOKFUNC)SELDisplay;
  501.   HDiHook.h_Entry  = (HOOKFUNC)HDisplay;
  502.   HCsHook.h_Entry  = (HOOKFUNC)HConstruct;
  503.   HDsHook.h_Entry  = (HOOKFUNC)HDestruct;
  504.  
  505. // ðíæãaìçä íàÿäéña:
  506.  
  507.   obj = (Object *)DoSuperNew (cl, obj,
  508.         MUIA_Window_Title, MAINWIN_TITLE,
  509.         MUIA_Window_ID, MAKE_ID('M','A','I','N'),
  510.         MUIA_Window_ScreenTitle, PROG_COPYRIGHT,
  511.         WindowContents, VGroup,
  512.               Child, ColGroup(2),
  513.                      Child, Label1 (MW_PACKET_LABEL),
  514.                      Child, HGroup,
  515.                             Child, PNTText  = SimpleText (empty),
  516.                             Child, PNameStr = String (empty, FMSIZE),
  517.                             Child, PLoadBut = PopButton (MUII_PopFile),
  518.                             End,
  519.                      Child, Label1 (MW_MESSAGE_LABEL),
  520.                      Child, HGroup,
  521.                             Child, MesText = SimpleText (empty),
  522.                             Child, VGroup,
  523.                                    Child, VSpace(0),
  524.                                    Child, LeftBut = PopButton (MUII_ArrowLeft),
  525.                                    Child, VSpace(0),
  526.                                    End,
  527.                             Child, NumBut = NumericbuttonObject,
  528.                                    MUIA_Numeric_Min, 1,
  529.                                    MUIA_Numeric_Default, 1,
  530.                                    MUIA_Numeric_Format, MUIX_C MW_NUM_FMT,
  531.                                    End,
  532.                             Child, VGroup,
  533.                                    Child, VSpace(0),
  534.                                    Child, RightBut = PopButton (MUII_ArrowRight),
  535.                                    Child, VSpace(0),
  536.                                    End,
  537.                             End,
  538.                      End,
  539.               Child, RegisterObject,
  540.                      MUIA_Register_Titles, mw_register,
  541.                      Child, VGroup,
  542.                             Child, HGroup,
  543.                                    Child, VGroup,
  544.                                           MUIA_Weight, 80,
  545.                                           Child, HGroup, GroupFrameT(MW_STATUS_TITLE),
  546.                                                  Child, HSpace(0),
  547.                                                  Child, Label(MW_PACKET_LABEL),
  548.                                                  Child, PStatLamp = SimpleLamp,
  549.                                                  Child, HSpace(0),
  550.                                                  Child, Label(MW_MESSAGE_LABEL),
  551.                                                  Child, MStatLamp = SimpleLamp,
  552.                                                  Child, HSpace(0),
  553.                                                  Child, Label(MW_ENTRY_LABEL),
  554.                                                  Child, EStatLamp = SimpleLamp,
  555.                                                  Child, HSpace(0),
  556.                                                  End,
  557.                                           Child, ColGroup(2),
  558.                                                  Child, Label1(MW_AREA_LABEL),
  559.                                                  Child, AreaText = SimpleText (empty),
  560.                                                  Child, Label1(MW_DATE_LABEL),
  561.                                                  Child, DateText = SimpleText (empty),
  562.                                                  Child, Label1(MW_FROM_LABEL),
  563.                                                  Child, FromText = SimpleText (empty),
  564.                                                  Child, Label1(MW_TO_LABEL),
  565.                                                  Child, ToText = SimpleText (empty),
  566.                                                  End,
  567.                                           End,
  568.                                    Child, VGroup,
  569.                                           MUIA_Weight, 30,
  570.                                           Child, HGroup,
  571.                                                  Child, UpBut = PopButton (MUII_ArrowUp),
  572.                                                  Child, DownBut = PopButton (MUII_ArrowDown),
  573.                                                  Child, ENumText = TextObject,
  574.                                                         MUIA_Text_Contents, empty,
  575.                                                         End,
  576.                                                  End,
  577.                                           Child, ELView = NListviewObject,
  578.                                                  MUIA_NListview_NList, EList = NListObject,
  579.                                                       InputListFrame,
  580.                                                       MUIA_NList_Input, TRUE,
  581.                                                       MUIA_NList_Title, TRUE,
  582.                                                       MUIA_NList_Format, "BAR,",
  583.                                                       MUIA_NList_DisplayHook2, &ELDiHook,
  584.                                                       MUIA_NList_ConstructHook2, &ELCsHook,
  585.                                                       MUIA_NList_DestructHook2, &ELDsHook,
  586.                                                       End,
  587.                                                  End,
  588.                                           End,
  589.                                    End,
  590.                             Child, HGroup,
  591.                                    Child, Label1(MW_SUBJ_LABEL),
  592.                                    Child, SubjText = SimpleText (empty),
  593.                                    End,
  594.                             Child, EntryLView = NListviewObject,
  595.                                    MUIA_Weight, 30,
  596.                                    MUIA_NListview_NList, EntryMText = MailtextObject,
  597.                                         TextFrame,
  598.                                         MUIA_NList_Title, TRUE,
  599.                                         MUIA_Mailtext_Text, empty,
  600.                                         MUIA_NList_DisplayHook2, &SELDHook,
  601.                                         End,
  602.                                    End,
  603.                             End,
  604.                      Child, HGroup,
  605.                             Child, VGroup,
  606.                                    Child, CLabel(MW_PACKET_HEADER),
  607.                                    Child, PHLView = NListviewObject,
  608.                                           MUIA_NListview_NList, PHList = NListObject,
  609.                                                ReadListFrame,
  610.                                                MUIA_NList_Input, FALSE,
  611.                                                MUIA_NList_Format, ",",
  612.                                                MUIA_NList_DisplayHook2, &HDiHook,
  613.                                                MUIA_NList_ConstructHook2, &HCsHook,
  614.                                                MUIA_NList_DestructHook2, &HDsHook,
  615.                                                End,
  616.                                           End,
  617.                                    End,
  618.                             Child, VGroup,
  619.                                    Child, CLabel(MW_MESSAGE_HEADER),
  620.                                    Child, MHLView = NListviewObject,
  621.                                           MUIA_NListview_NList, MHList = NListObject,
  622.                                                ReadListFrame,
  623.                                                MUIA_NList_Input, FALSE,
  624.                                                MUIA_NList_Format, ",",
  625.                                                MUIA_NList_DisplayHook2, &HDiHook,
  626.                                                MUIA_NList_ConstructHook2, &HCsHook,
  627.                                                MUIA_NList_DestructHook2, &HDsHook,
  628.                                                End,
  629.                                           End,
  630.                                    End,
  631.                             End,
  632.                      End,
  633.               End,
  634.         TAG_DONE);
  635.  
  636.   if (! obj)
  637.     {
  638.       MakeRequest (REQ_TITLE_ERROR, WINDOW_PROBLEM, EXIT_BUTTON, NULL);
  639.       return (GAME_OVER);
  640.     }
  641.  
  642. ///                        Æaîíêìçë ðñïòéñòïò ãaììúô:
  643. ///
  644.  
  645.   data = INST_DATA(cl, obj);
  646.  
  647.   data->PNTText = PNTText; data->PNameStr = PNameStr; data->PLoadBut = PLoadBut; data->MesText = MesText;
  648.   data->NumBut = NumBut;
  649.   data->PStatLamp = PStatLamp; data->MStatLamp = MStatLamp; data->EStatLamp = EStatLamp;
  650.   data->ENumText = ENumText; data->EList = EList;
  651.   data->AreaText = AreaText; data->DateText = DateText; data->FromText = FromText; data->ToText = ToText; data->SubjText = SubjText;
  652.   data->EntryMText = EntryMText;
  653.  
  654.   data->PHList = PHList; data->MHList = MHList;
  655.  
  656.   *data->reqfile = '\0';
  657.   data->MailPkt = NULL;
  658.   data->EMTMem = NULL;
  659.   NewList (&data->MemPool);
  660.  
  661. ///      Òðñaìíáçë ëäñíãú ïäaéõçç ìa æaéïúñçä, ìa éìíîéç ç ìa ëäìý:
  662. ///
  663.  
  664. // Õçéê-òîïaáêäìçä ð éêaáçañòïú:
  665.   DoMethod (obj, MUIM_MultiSet, MUIA_CycleChain, TRUE, PLoadBut, LeftBut, RightBut, NumBut, UpBut, DownBut, ELView, EntryLView, PHLView, MHLView, NULL);
  666.  
  667. // Æaéïúñçä îí âaãåäñò íéìa:
  668.   DoMethod (obj, MUIM_Notify,           MUIA_Window_CloseRequest, TRUE,
  669.                                         obj, 1,
  670.                                         MUIM_MW_Close);
  671. // Æaâïòæéa îaéäña ìaåañçäë ìa éìíîéò:
  672.   DoMethod (PLoadBut, MUIM_Notify,      MUIA_Pressed, FALSE,
  673.                                         obj, 1,
  674.                                         MUIM_MW_OpenPKT);
  675. // Æaâïòæéa îaéäña áúàíïíë çæ ðñïíéç:
  676.   DoMethod (PNameStr, MUIM_Notify,      MUIA_String_Acknowledge,
  677.                                         MUIV_EveryTime,
  678.                                         obj, 1,
  679.                                         MUIM_MW_NewName);
  680. // Ðñïäêéa áêäáí:
  681.   DoMethod (LeftBut, MUIM_Notify,       MUIA_Pressed, FALSE,
  682.                                         obj, 2,
  683.                                         MUIM_MW_ToMessage, -1L);
  684. // Ðñïäêéa áîïaáí:
  685.   DoMethod (RightBut, MUIM_Notify,      MUIA_Pressed, FALSE,
  686.                                         obj, 2,
  687.                                         MUIM_MW_ToMessage, 1L);
  688. // Áúàíï ìíëäïa ðííàùäìçþ:
  689.   DoMethod (NumBut, MUIM_Notify,        MUIA_Numeric_Value,
  690.                                         MUIV_EveryTime,
  691.                                         obj, 2,
  692.                                         MUIM_MW_SelectNum,
  693.                                         MUIV_TriggerValue);
  694. // Ðñïäêéa ááäïô:
  695.   DoMethod (UpBut, MUIM_Notify,         MUIA_Pressed, FALSE,
  696.                                         obj, 2,
  697.                                         MUIM_MW_ToEntry, -1L);
  698. // Ðñïäêéa áìçæ:
  699.   DoMethod (DownBut, MUIM_Notify,       MUIA_Pressed, FALSE,
  700.                                         obj, 2,
  701.                                         MUIM_MW_ToEntry, 1L);
  702. // Áúàíï ìíáíâí üêäëäìña á ðîçðéä:
  703.   DoMethod (EList, MUIM_Notify,         MUIA_NList_Active,
  704.                                         MUIV_EveryTime,
  705.                                         obj, 1,
  706.                                         MUIM_MW_NewEntry);
  707.   return ((ULONG)obj);
  708. }
  709.  
  710. /*                             ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  711. ­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥ MainWinDispatcher() ª¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯
  712. ¢                              ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´                      ¢
  713. ¢                             Ãçðîäñöäï íàÿäéña MainWin.                    ¢
  714. ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡´
  715. */
  716. ULONG __saveds __asm MainWinDispatcher(REG(a0) struct IClass *cl, REG(a2) Object *obj, REG(a1) Msg msg)
  717. {
  718.   switch (msg->MethodID)
  719.     {
  720.       case OM_NEW             : return (MainWinNew        (cl, obj, (APTR)msg));
  721.       case MUIM_MW_Open       : return (MainWinOpen       (cl, obj, (APTR)msg));
  722.       case MUIM_MW_Close      : return (MainWinClose      (cl, obj, (APTR)msg));
  723.       case MUIM_MW_OpenPKT    : return (MainWinOpenPKT    (cl, obj, (APTR)msg));
  724.       case MUIM_MW_NewPacket  : return (MainWinNewPacket  (cl, obj, (APTR)msg));
  725.       case MUIM_MW_Message    : return (MainWinMessage    (cl, obj, (APTR)msg));
  726.       case MUIM_MW_ToMessage  : return (MainWinToMessage  (cl, obj, (APTR)msg));
  727.       case MUIM_MW_NewEntry   : return (MainWinNewEntry   (cl, obj, (APTR)msg));
  728.       case MUIM_MW_ToEntry    : return (MainWinToEntry    (cl, obj, (APTR)msg));
  729.       case MUIM_MW_NewName    : return (MainWinNewName    (cl, obj, (APTR)msg));
  730.       case MUIM_MW_SelectNum  : return (MainWinSelectNum  (cl, obj, (APTR)msg));
  731.     }
  732.   return (DoSuperMethodA (cl, obj, msg));
  733. }
  734.